Most prior personal computers include many types of memory storage devices. Hard magnetic disk drives are used typically for mass storage, while different types of semiconductor memories are used for other purposes.
The non-volatility of hard magnetic disk drives is one of the chief reasons for their use. They may be turned on and off without loss of data. Hard drives store data on concentric tracks. Each track includes several sectors, each of which is typically 512 bytes in length.
Hard drives suffer from a number of disadvantages. Their size, their height in particular, often makes them unattractive for use in portable and lap top computers. The height of a hard disk drive has often been a limiting factor in attempts to reduce computer size to make computers more portable. Hard drives also consume relatively large amounts of power, which makes them even less attractive for computers that are battery powered.
Hard drives are less than ideal for use in computers that will used out-of-doors. Magnetic disk drives are extremely sensitive to vibration and shock. Additionally, magnetic drives do not tolerate well the dust and humidity associated with much of the great outdoors.
Semiconductor memories, also referred to as solid state memories, do not suffer from many of the disadvantages of magnetic disk drives. They are small and rugged and consume significantly less power than magnetic drives.
One type of non-volatile semiconductor memory is the FLASH electrically erasable programmable read only memory (FLASH memory). FLASH memories can be programmed by the user and once programmed retain their data until erased. FLASH memories are erased by erasing a block of memory at a time. A block is a relatively large amount of data, 64 Kbytes or 65,536 bytes.
A FLASH memory cell is erased when the net charge on the floating gate is neutral. An erased FLASH bit is referred to as a "1." Conversely, a FLASH memory cell is programmed when the net charge on the floating gate is negative. A programmed FLASH bit is referred to as a "0." A FLASH memory cell cannot be reprogrammed without a prior erasure with one exception. Any FLASH bit can be programmed to a 0 at any time.
In some prior FLASH memories the programming and erasure is controlled internally by a write state machine or a command register. Internal control of programming and erasure lessens the knowledge and time required to program and erase the FLASH memories. However, FLASH erase time times remain relatively slow despite internal control. Erase cycle time is on the order one to two seconds. If an erase must occur before every write or re-write of a sector of data it is not possible to approach magnetic disk drive write times using FLASH memory.